package com.ruoyi.common.enums;

import lombok.Getter;
import lombok.ToString;

/**
 * 全局统一状态码类(状态码范围：000000~999999)
 * @author 然子哥
 */
@Getter
@ToString
public enum CodeEnum
{
    SUCCESS(true, 200,"成功"),
    UNKNOWN_REASON(false, 20001, "未知错误"),
    AN_UNEXPECTED_ERROR(false,20002, "未期许的错误，平台功能暂未拓展"),
    IS_PHONE_ERROR(false,20004, "该用户不是该手机号"),
    INVALID_PARAMETERS(false,20005,"请求参数无效"),


    USER_VCODE_WITHOUT_TIMEOUT(false,10001,"同一手机号60内只能发送一次验证码"),
    USER_VCODE_NOT_EXISTS(false,10002,"请重新获取验证码"),
    USER_VCODE_INVAlID(false,10003,"验证码不正确"),
    USER_lOGIN_PHONE(false,10004,"账号不存在"),
    USER_lOGIN_PASSWORD(false,10005,"密码不正确"),
    USER_TICKETBUYER_NOT_EXISTS(false,10006,"身份证已经存在"),
    PHONE_NUMBER_ERROR(false,10007,"手机号格式不正确"),
    PHONE_NUMBER_EXISTS_ERROR(false,10008,"该手机号已经存在了"),
    IDNUMBER_ERROR(false,10009,"身份证格式不正确"),
    IDNUMBER_EXISTS_ERROR(false,10010,"该身份证已经存在了"),
    PERSONNEL_NAME_MUST_NOT_HAVE_NUMBER(false,10011,"用户姓名不能有数字"),
    FACE_RECOGNITION_FAILED(false,10012,"项目或人脸库没有采集该用户的信息"),
    FACE_PHOTO_FAILED(false,10013,"人脸照片无法识别请从新拍照"),
    JOBS_MUST_NOT_NULL(false,10014,"工种不可以为空"),


    ROLE_MUST_NOT_NULL(false,10015,"请选择角色信息！"),


    USER_ADD(false,11001,"人员添加失败"),
    USER_UPD(false,11002,"人员修改失败"),
    USER_DEL(false,11003,"人员删除失败"),

    ORG_ADD(false,11004,"组织添加失败"),
    ORG_DEL(false,11005,"组织删除失败"),
    ORG_UPD(false,11006,"组织修改失败"),
    ORG_ADD_POST(false,11007,"组织添加岗位失败"),

    POST_ADD(false,11008,"添加岗位失败"),
    POST_DEL(false,11009,"删除岗位失败"),
    POST_UPD(false,11010,"修改岗位失败"),
    POST_ADD_JUR(false,11011,"岗位设置权限失败"),
    POST_ADD_EXISTS(false,11012,"该岗位已经存在了"),
    POST_USER_EXISTS(false,11013,"该角色中正在使用，删除失败"),

    JUR_ADD(false,11014,"权限添加失败"),
    JUR_UPD(false,11015,"权限修改失败"),
    JUR_DEL(false,11016,"权限删除失败"),

    PRO_ADD(false,11017,"项目添加失败"),
    PRO_ADDFAIL(false,110171,"部门名称重复，添加失败"),
    PRO_UPD(false,11018,"项目修改失败"),
    PRO_DEL(false,11019,"项目删除失败"),
    PRO_DEL_ERR(false,11019,"项目删除失败，该项目下有相关组织或人员信息"),
    PRO_NULL(false,11020,"请选择项目信息"),
    PRO_AREA_NULL(false,11021,"请选择项目所属的区域信息"),

    PASS_ERROE(false,11022,"密码错误"),
    PASS_UPD(false,11023,"密码修改失败"),
    COM_DEL_ERR(false,11024,"劳务公司删除失败，该项目下有相关组织或人员信息"),
    COMNAME_DEL_ERR(false,11025,"劳务公司名称或社会信用代码重复！"),


    EXCEL_DATA_IMPORT_ERROR(false,12001, "Excel数据导入错误"),
    EXCEL_NOT_NULL(false,12013, "Excel 文件为空，禁止导入"),
    EXCEL_DATA_EXPORT_ERROR(false,12002, "Excel数据导出错误"),
    FILE_UPLOAD_ERROR(false, 12003, "文件上传错误"),
    FILE_DELETE_ERROR(false, 12004, "文件刪除错误"),
    EXCEL_DATA_UPLOAD_ERROR(false,12005, "Excel模板下载失败"),
    IMPORT_TYPE_OF_WORK_EMPTY_ERROR(false,12006, "导入的工种信息不能为空"),
    IMPORT_ROLE_EMPTY_ERROR(false,12007, "导入的角色信息不能为空"),
    IMPORT_COMPANY_EMPTY_ERROR(false,12008, "导入的公司信息不能为空"),
    DATABASE_NO_TOF_INFORMATION_ERROR(false,12009, "暂无该工种信息，请重新检查工种列是否有误"),
    DATABASE_NO_ROLE_INFORMATION_ERROR(false,12010, "暂无该角色信息，请重新检查角色列是否有误"),
    DATABASE_NO_COMPANY_INFORMATION_ERROR(false,12011, "暂无该公司信息，请重新检查公司列是否有误"),
    EXCEL_HEADER_INFO_ERROR(false,12012, "您上传的文件格式与模板格式不一致，请检查后重新上传"),


    BAD_SQL_GRAMMAR(false, 13001, "sql语法错误"),
    JSON_PARSE_ERROR(false, 13002, "json解析异常"),
    PARAM_ERROR(false, 13003, "参数不正确"),


    LOGIN_ACL(false, 14001, "没有权限"),


    SEN_USER_ADD(false,15001,"人员添加失败"),
    SEN_USER_ASE(false,15004,"人员解密失败"),
    SEN_DEVICES(false,15005,"设备列表获取失败"),
    SENSE_LINK_DEPARTMENT_ADD_ERROR(false,15006,"SenseLink部门添加失败"),
    SENSE_LINK_DEPARTMENT_UPDATE_ERROR(false,15007,"SenseLink部门修改失败"),
    SENSE_LINK_ATTENDANCE_PULL_ERROR(false,15008,"SenseLink考勤拉取失败"),
    PUSH_THIS_DAY_ATTENDANCE_ERROR(false,15009,"推送当天零点至八点考勤失败"),


    IMAGE_IMPORT_ERROR(false, 16001, "图片上传失败"),
    IMAGE_PACKAGE_ZIP_IMPORT_ERROR(false, 16002, "图片压缩包上传失败"),


    DATABASE_NO_SET_PER_FLAG(false,17001, "数据库未给该人员设置身份标记"),
    PERSONNEL_EXIST_ORGANIZATION(false,17002, "该人员已经存在组织"),
    NOTIDNUMBERURL(false,17003 ,"没有添加身份证图片" ),
    FACEURL(false,17004 ,"没有添加人脸图片" ),
    HeiMingDan(false,17005 ,"没有添加进去黑名单原因原因"),
    ORG_ID_IS_NULL(false,17006 ,"请选择班组"),
    TOF_ID_IS_NULL(false,17007 ,"请选择工种" ),
    SOME_VIRTUAL_LABOR_COMP(false, 17008, "没有该信用代码的劳务公司,需要新增"),
    INHeiMingDAN(false,17009 ,"添加人员信息中存在黑名单人员："),


    COMMODITY_CLASSIFY_ADD(false,18001,"商品分类信息添加失败"),
    COMMODITY_CLASSIFY_UPDATE(false,18002,"商品分类信息修改失败"),

    COMMODITY_CLASSIFY_DELETE(false,18003,"当前存在上架商品分类无法删除"),

    COMMODITY_CLASSIFY_PARENT(false,18004,"父级上架后才可对子级进行上架操作"),

    COMMODITY_CLASSIFY_BINDING(false,18005,"当前商品分类与商品已关联无法进行下架"),
    COMMODITY_CLASSIFY_NAME(false,18006,"当前项目下已存在相同分类名称"),

    COMMODITY_ADD(false,19001,"商品信息添加失败"),

    COMMODITY_UPDATE(false,19002,"商品信息修改失败"),

    COMMODITY_DELETE(false,19003,"当前存在上架商品无法删除"),

    COMMODITY_CODING(false,19004,"当前商品编码已存在"),
    COMMODITY_NAME(false,19005,"当前商品名称已存在"),
    DEVICE_ADD(false,20001,"设备信息添加失败"),

    DEVICE_UPDATE(false,20002,"设备信息修改失败"),
    DEVICE_NAME(false,20003,"设备名称已存在"),
    DEVICE_NUM(false,20004,"设备编号已存在"),

    CATEGORY_CLASSIFY_ADD(false,21001,"培训分类信息添加失败"),
    CATEGORY_CLASSIFY_DELETE(false,21003,"此分类为上架状态!无法删除"),
    CATEGORY_CLASSIFY_BINDING(false,21004,"当前培训分类与在线学习已关联无法进行下架"),
    CATEGORY_CLASSIFY_NAME(false,21005,"分类名称不能重复!"),
    CATEGORY_CLASSIFY_UPDATE(false,21002,"培训分类信息修改失败"),
    CATEGORY_CLASSIFY_DELETETO(false,21003,"该节点下有内容不可删除"),





    //项目和第三方信息错误
    NO_CONFIGURATION_FOUND(false,22001,"没有找到相关配置信息"),


    //考勤相关枚举异常
    ATT_NOT_PROJECT(false,22002,"请传项目id"),
    ATT_NOT_PROJECTAORGID(false,22003,"请传项目id或者班组id"),
    ATT_NOT_PAGEACOUNT(false,22004,"请传页码或条数"),
    ATT_NOT_STARTAENDTIME(false,22005,"请传开始或结束时间"),
    ATT_NOT_DATEORPERID(false,22006,"请传用户id和日期");
    /**
     * 构建CodeEnum方法
     *
     * @param success 成功
     * @param code    返回码
     * @param message 返回消息
     */
    CodeEnum(Boolean success, Integer code, String message) {
        this.success = success;
        this.code = code;
        this.message = message;
    }

    private final Boolean success;

    private final Integer code;

    private final String message;
}
